package es.mfp.practicos.DTO;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import es.mfp.practicos.domain.TipoLinea;

public class ConsultaConsumosCriteria implements Serializable {

	// where are de testes??

	private static final long serialVersionUID = 1L;

	private List<Long> idsFactura = null;

	private List<Long> idsEmpleado = null;

	public TipoLinea[] getTiposLinea() {
		return tiposLinea;
	}

	public void setTiposLinea(TipoLinea[] tiposLinea) {
		this.tiposLinea = tiposLinea;
	}

	private Date facturacionDesde = null;

	private Date facturacionHasta = null;

	private TipoLinea[] tiposLinea = null;

	private List<Long> idsLinea = null;

	private boolean soloEmpleadosActivos = true;

	private boolean soloLineasActivas = true;

	private boolean soloFacturasActivas = true;

	public boolean isSoloEmpleadosActivos() {
		return soloEmpleadosActivos;
	}

	public void setSoloEmpleadosActivos(boolean soloEmpleadosActivos) {
		this.soloEmpleadosActivos = soloEmpleadosActivos;
	}

	public boolean isSoloLineasActivas() {
		return soloLineasActivas;
	}

	public void setSoloLineasActivas(boolean soloLineasActivas) {
		this.soloLineasActivas = soloLineasActivas;
	}

	public boolean isSoloFacturasActivas() {
		return soloFacturasActivas;
	}

	public void setSoloFacturasActivas(boolean soloFacturasActivas) {
		this.soloFacturasActivas = soloFacturasActivas;
	}

	public List<Long> getIdsLinea() {
		return idsLinea;
	}

	public void setIdsLinea(List<Long> idsLinea) {
		this.idsLinea = toLongList(idsLinea);
	}

	public List<Long> getIdsFactura() {
		return idsFactura;
	}

	public void setIdsFactura(List<Long> idsFactura) {
		this.idsFactura = toLongList(idsFactura);
	}

	public List<Long> getIdsEmpleado() {
		return idsEmpleado;
	}

	public void setIdsEmpleado(List<Long> idsEmpleado) {
		this.idsEmpleado = toLongList(idsEmpleado);
	}

	private List<Long> toLongList(List<Long> ids) {

		if (ids == null) {
			return null;
		}

		List<Long> res = new ArrayList<Long>(ids.size());

		for (Object o : ids) {
			res.add(Long.valueOf(o.toString()));
		}

		return res;
	}

	public Date getFacturacionDesde() {
		return facturacionDesde;
	}

	public void setFacturacionDesde(Date facturacionDesde) {
		this.facturacionDesde = facturacionDesde;
	}

	public Date getFacturacionHasta() {
		return facturacionHasta;
	}

	public void setFacturacionHasta(Date facturacionHasta) {
		this.facturacionHasta = facturacionHasta;
	}

	@Override
	public String toString() {
		String res = "ids factura: " + idsFactura + "\n";
		res += "tipos linea: " + tiposLinea + "\n";
		res += "ids empleados: " + idsEmpleado + "\n";
		res += "fecha desde: " + facturacionDesde + "\n";
		res += "fecha hasta: " + facturacionHasta + "\n";
		res += "idsLineas: " + idsLinea + "\n";

		return res;

	}

}
